In Volume Graphics, objects are represented as arrays of sampled data elements. Volumetric object representations have some advantages over surface-based graphical object representations because they can represent object interiors. This is important both for visualizing the internal structure of complex objects and for physically-based modeling of actions such as object deformation or the cutting and tearing of volumetric objects. Using volumetric object representations to model physically-based object interactions is discussed, for example, by S. Gibson in "Beyond volume rendering: visualization, haptic exploration, and physical modeling of voxel-based objects", in Proc. Eurographics workshop in Visualization in Scientific Computing, pp. 10-23, Chia, Italy, 1995. Using a volumetric object representation to model object deformation is discussed by S. Gibson in "3D ChainMail: a fast algorithm for deforming volumetric objects", in Proc. Symposium on Interactive 3D Graphics, Providence, RI, pp. 149-154, 1997.
Volume Rendering is technique used for displaying volumetric objects on a 2D computer monitor. There are several approaches to volume Rendering, including ray casting where rays from each pixel in the image plane are cast into the object, accumulating color as they pass through the volumetric object; and splatting where each element in the object is projected onto the image plane, contributing color to the rendered image. For Volume Rendering, information about the color, transparency, surface normal, and material reflectance properties for each volume element are needed. These are often derived from two values stored for each element: a measured sample intensity or density value, and a material classification. For example, the density value might be used to calculate the element's opacity and surface normal, while the classification might be used to assign colors and reflectance properties to object elements.
In computer graphics, the quality of a rendered image is greatly improved by adding an illumination model to the rendering process. An illumination model allows the calculation of lighting effects such as spot lighting from specific light sources, reflections from object surfaces, and shadows. In computer graphics, a typical illumination model is the Phong illumination model, which expresses the light reflected from an object surface as follows: EQU I.sub.r =k.sub.a I.sub.a I.sub.obj +k.sub.d I.sub.L I.sub.obj (N.sup..multidot. L)+k.sub.s I.sub.L I.sub.obj (R.sup..multidot. V).sup.n,
where I.sub.r, I.sub.a, I.sub.obj, and I.sub.L are the reflected, ambient, object, and light source colors, k.sub.a, k.sub.d, and k.sub.s are the ambient, diffuse, and specular reflection coefficients, N is the surface normal of the object, L is the direction of the light source, V is the viewing direction, and R is a function of N and L.
In the Phong illumination model, an accurate representation of the object surface normal is essential. Inaccurate surface normals can have a large effect on the perceived shape and texture of a graphical object. Since, in most graphical representations, the surface normal is known accurately at only a relatively small number of positions, estimating the surface normal at arbitrary object positions is very important for high quality rendering. In Volume Graphics, estimating surface normals is especially challenging because accurate surface normals are not usually stored in the data. Instead, surface normals are usually estimated from data intensity or density values.
It is important to note that the calculation of accurate surface normals in Volume Graphics is not only needed for Volume Rendering. An accurate surface normal estimation is essential for haptic data exploration where a force feedback device is used by the user to tactually explore the surface of a graphical object. Accurate surface normal estimation is essential in this application because the sense of touch is even more sensitive than the eye to surface irregularities. An accurate surface normal is also important in modeling physically-based interactions between objects because the calculation of impact and frictional forces between objects depends on these normals.
Many methods have been used to add lighting effects, or shading, to Volume Rendered images. These methods depend on the data representation. Different methods are used when the data is represented as a binary field where data samples are either empty or full of a given material, or as a sampled continuous field, such as a sampled intensity or material density field. Many methods for shading volumetric objects are discussed, for example, in "Volume Visualization", edited by Arie Kaufman, and published by the IEEE Computer Society Press, Los Alamos, Calif., in 1991. The more sophisticated of these methods require surface normal estimates at sampled data points.
In order to estimate surface normals when the object is represented as sampled continuous field, Volume Rendering often takes advantage of the fact that the image intensity or material density values change fastest at object surfaces. The directional change in image intensity can be represented by the 3D image gradient vector, which, at any image position, points in the direction of fastest change in intensity values and which has a magnitude proportional to surface strength. Hence, this gradient vector is often used in Volume Rendering to estimate surface normals for illumination.
There are many ways to estimate image gradient vectors from sampled data. One straight-forward method is called the central difference method. Here the gradient vector, (g.sub.x, g.sub.y,g.sub.z,) is estimated from the 3D image intensity I(x,y,z) by: EQU g.sub.x =I(x+1,y,z)-I(x-1,y,z), EQU g.sub.y =I(x,y+1,z)-I(x,y-1,z), EQU g.sub.z =I(x,y,z+1)-I(x,y,z-1).
Other image gradient operators include Sobel operators, cosine filters, and more complex filters such as those discussed by S. Marschener and R. Lobb in "An evaluation of reconstruction filters for Volume Rendering", Proc. IEEE Visualization '94, pp. 100-107, Washington, D.C., 1994, by T. Moller, R. Machiraju, K. Mueller, and R. Yagel in "Evaluation and design of filters using a taylor series expansion", IEEE Transactions on Visualization and Computer Graphics, Vol. 3, No. 2, pp. 184-199, 1997, and by M. Bentum, B. Lichtenbelt, and T. Malzbender in "Frequency analysis of gradient estimators in volume rendering", IEEE Transactions on Visualization and Computer Graphics, Vol. 2, No. 3, pp. 242-254, 1996.
S. Wang and A. Kaufman calculate smooth surface normals from volumetric data in "Volume-sampled 3D modeling", in IEEE Computer Graphics and Applications, pp. 26-32, September 1994. They start with binary segmented data and then apply a Gaussian filter to the object intensity or density values. They then estimate surface normals as the gradient of this smoothed image.